Micron Document
πŸŽ–οΈGitΠ―Ρ€Π°πŸŽ–οΈ


Displaying Rendered β€’ View raw β€’ Download

specs/20260507-161858-app-docs-markdown/quickstart.md docs/obtainium-generated-deeplinks (42f311dd) Text, 4.05 KB

Quickstart: App Documentation (Android/KMP)

Prerequisites

β€’ JDK 21
β€’ Android SDK (T383838ANDROID_HOME set or discoverable)
β€’ Git submodules initialized
β€’ T383838local.properties present (T383838cp secrets.defaults.properties local.properties if needed)
β€’ Ruby + Bundler only if you want to preview Jekyll locally
β€’ No Node.js requirement

1. Bootstrap the workspace

T282828
git submodule update --init
Tff7b72[ -f local.properties Tff7b72] Tff7b72|| cp secrets.defaults.properties local.properties


2. Author or edit docs content

Markdown source lives in:

β€’ T383838docs/user/*.md
β€’ T383838docs/developer/*.md

Example frontmatter:

T282828
---
title: Messages & Channels
nav_order: 3
aliases:
Tff7b72- channels
Tc9d1d9 - direct-messages
Tc9d1d9---

Tc9d1d9# Messages & Channels


3. Generate the bundled docs corpus

T282828
./gradlew generateDocsBundle validateDocsBundle

Expected outputs:

β€’ generated HTML for Android/Web docs parity
β€’ optional markdown mirror for Compose renderers
β€’ T383838index.json keyword index
β€’ shared CSS and callout styling
β€’ size/schema/asset validation

4. Build the GitHub Pages site artifact locally

T282828
./gradlew publishDocsSite -Pdocs.channelTff7b72=beta


This should produce a deployable T383838_site/ tree with T383838/beta/ output.

5. Refresh screenshot assets

Preferred path if Roborazzi is used:

T282828
./gradlew recordDocsScreenshots

If the project adopts Paparazzi instead, run the equivalent Paparazzi record task defined by the implementation.

6. Run docs-specific tests

T282828
./gradlew :feature:docs:allTests :feature:docs:detekt
./gradlew kmpSmokeCompile

7. Run full repo verification before shipping

T282828
./gradlew spotlessCheck detekt assembleDebug Tffa657test allTests generateDocsBundle validateDocsBundle


8. Preview the Jekyll site locally (optional)

T282828
Tffa657cd docs
bundle Tffa657exec jekyll serve --livereload
T8b949e# open http://127.0.0.1:4000


Recommended gems:

T282828
gem install bundler jekyll just-the-docs jekyll-redirect-from

9. Test the in-app route

Open the app and navigate to:

β€’ Settings β†’ Help & Documentation

Deep link contract:

T282828
meshtastic://meshtastic/settings/helpDocs

Optional specific-page form:

T282828
meshtastic://meshtastic/settings/helpDocs/messages-and-channels

10. Verify target-specific behavior

Android
β€’ Docs open in a WebView-backed page renderer
β€’ T383838google flavor on supported Android 14+ devices may show Chirpy AI
β€’ T383838fdroid flavor must still show keyword search and docs pages

Desktop / iOS
β€’ Docs open through the shared renderer abstraction
β€’ Keyword search works even when AI is unsupported

Key file locations

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Path β”‚ Purpose β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ T383838docs/ β”‚ Authored markdown content and site config β”‚
β”‚ T383838feature/docs/ β”‚ New KMP feature module for in-app docs β”‚
β”‚ T383838core/navigation/src/commonMain/kotlin/org/meshtasti… β”‚ Typed docs routes β”‚
β”‚ T383838core/navigation/src/commonMain/kotlin/org/meshtasti… β”‚ Deep-link mapping β”‚
β”‚ T383838feature/settings/src/commonMain/kotlin/org/meshtast… β”‚ Settings entry point β”‚
β”‚ T383838build-logic/convention/.../DocsTasks.kt β”‚ Gradle docs pipeline β”‚
β”‚ T383838.github/workflows/docs-deploy.yml β”‚ Continuous beta docs deploy β”‚
β”‚ T383838.github/workflows/docs-release.yml β”‚ Versioned release deploy β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Troubleshooting

T383838generateDocsBundle fails on markdown parsing
Check frontmatter syntax, unsupported attribute lines, and table formatting.

T383838validateDocsBundle reports missing assets
Confirm every referenced screenshot exists in the generated or curated asset set.

AI assistant not visible on Android
Check device support, Android version, flavor (T383838google only), and runtime model availability.

Desktop/iOS page looks different from Android
Confirm whether the renderer is using HTML or markdown mode and compare against the generated HTML output.

Bundle size exceeds 10 MB
Trim screenshots, compress assets, or reduce duplicated artifacts before raising the limit.

Served by rngit 1.5.0 - Generated in 0.06s